[レポート] 【株式会社チカク様登壇】IoT スタートアップの小さくはじめるサーバインフラ #AWSSummit
IoT スタートアップの小さくはじめるサーバインフラ
6/1 (水) ~ 6/3 (金) に開催された AWS Summit Tokyo 2016 の Develoeprs Confrence のセッション「IoT スタートアップの小さくはじめるサーバインフラ」を聴講しました。本記事はそのレポートです。
株式会社チカクは、離れて暮らすおじいちゃん・おばあちゃん宅に子どもたちの動画や写真を届けるサービス「まごチャンネル」を提供している社員 4 名の会社です。小さくてもしっかりとサービスを提供し続けるために AWS をどう活用しているのか、どのように考えて構築していったのか、今後どのように発展させていくのかについてご紹介します。
スピーカーは 高橋 一貴 氏(株式会社チカク シニアエンジニアリングマネージャー)です。
セッション
今日の話
- 製品紹介、ハードウェア
- サーバーインフラの開発と運用
- 今後について
自己紹介
- 株式会社チカク
- シニアエンジニアリングマネージャー
- サーバーサイドとオペレーションの中間で、落ちそうなボールを片っ端から拾う仕事
- 元Yahoo!
チカクについて
- 2014年創業
- 平均年齢35歳
- 社員4名 + インターン4名
- 四苦八苦中
- 最初のプロダクト「まごチャンネル」をリリース、出荷真っ只中
まごチャンネル
- おじいちゃん、おばあちゃんのテレビにつなぐ
- 動画を送ることができる
- いい感じに光る (超重要!)
- 沢山撮っている写真をおじいちゃん・おばあちゃんにどれほど見せているかというとそうでもない
- うまくいく方法がないので作ろう、ということで生まれた
- 動画や写真をスマホから届けることができる
- インターネットのない家庭でもOK (SIM が入っている)
- リモコンで簡単操作
- セットアップまでしてから送付するので、繋げるだけですぐに見れる
- テレビで出すと、実際の子どもより大きい
- 見たことのフィードバックが送った側に届く(送るモチベーション、生存確認)
様々なメディアに登場
- 日テレの Sensors で紹介
- 日経新聞の第一面に
- 様々なメディア
リアル店舗への展開
- Isetan とコラボ (新宿伊勢丹で6/19までの期間限定)
まごちゃん受信ボックス
- Linux ベースの何か
- 動画や写真をポーリング
- 電波状況を送り続ける
- 深夜に S3 を見てファームウェアアップデート
ハード要件の特徴
- コンセント差して常時稼働
- 3Gモジュール搭載 (SORACOM)
- 放射電波ノイズ、熱対策が必要
- 玉川さん神
- 普通の REST っぽい API を叩く感じ
ハード怖い #1
- 量産まで持って行くのに半年以上 ES EVT DVT PVT MP
- 不良がつきもの (部品、製造の歩留まり、)
- 工程にも予想外のことが起こる
- 射出成型だと斜面を作らないとダメ、などなど
ハードが怖い #2
- 技適
- 電気通信事業者の届け出
- PSE
- PL保険 (AC アダプタについているあれ)
- HDMI コンソーシアムに登録必要
- 製品保証
- 先に出て行くお金が膨大
- 重量負荷分散
- などなど
IoTスタートアップに足りないもの
- 人、時間、お金
- これが極端に足りない
- Yahoo!は、爆速という言葉がある。あと、黒帯とかで大企業ハックしてきた。
- だがそれすらもできない。
- ウィッシュリストでおねだり
関心ごとも多岐にわたる
- 設置環境
- 故障検知の可能性
- カスタマーサポート
- 分解、解析スキル
- 在庫管理
- ・・・
ならば、サーバーサイドをどう考えるか
- やることいっぱい、サーバーばかり面倒見てられない
- 「ちょうどぴったり」
- 間に合うギリギリのタイミングで用意する
- それが目の前に来るまで飛ばない
- 先送りに見えるが、情報が出きってから判断する
- サーバー多すぎると無駄、アラート地獄
- なんでも「ちょうどぴったり」がいい
- インフラ
- サービス設計
- システム設計
- などなど
- 目の前にフォーカス
- 先読み難しい
- 先読みのコストメリットが少ない
- ビビってやるのは無駄では
まずは手馴れたものから
- EC2/ELB
- S3/RDS
- ElastiCache
- SNS/SES
- Dockerもやりたいけど中途半端になりそうなものは今は切り捨て
- 目まぐるしく変わるので、1週間後に変わるかもしれない
6つの構成要素
- API
- HTTP エンドポイント
- ELB で受けて EC2 が処理
- t2.medium で動かしている
- 動画、写真を扱うので
- Job
- Redis でキューイング
- Web
- 冗長構成なってない
- Data Insight
- 集計
- Kibana
- Data Store
- コンテンツを S3 に保存
- 明らかに責務が違うものは RDS インスタンスごと変えている
- STB Update
- S3 においている
- 深夜に観に行き、アップデート
監視
- 兆候に気づく仕組みにしたい
- CW / New Relic / Mackerel
- PagerDurty すごい便利
シンプルな構成
- サービスが自信あるが、継続が約束できると思っていない
- 管理要素を減らし、その分変更に弱くなる
- サービスを動かしてみて要件が出てくる
- コスト構造も見えやすい
例えば
- 出荷管理を Google スプレッドシートでやろうとしたら管理しきれそうにない
- システム作る時間もない
- Trello を活用した
- 自動でタスクが登録される
- QR コードを読み、手入力させない
ちょうどぴったりを支えるツール
- RoR
- Packer
- RSpec
- Bitrise / Circle CI
- Capistrano3
- Vagrant
- waffle.io (GitHub の Issue管理)
現在の課題
- 突発的な負荷があるとメモリを食い尽くす
- 管理画面がまだないが必要ないものを作るよりはマシ
- もう少し月々お安くしたい
- AWS Activate プログラム良い!
次の「ちょうどぴったり」
- もっとぴったりするものが出てくる
- Lambda 登場、安くなりそう
- システムが小さいうちに移行したい (API GW + Lambda など)
感想
技術だけではなく UX を意識したプロダクトで非常に好感が持てました。「ちょうどぴったり」大事ですね。時間もないしコストもない中で、とても大事な考え方だと思いました。